home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-08-24 | 43.0 KB | 1,487 lines |
- ;;; -*- Lisp-Interaction -*-
- ;;; Version: $VER: GCC-Install 2.11 (22.08.95)
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;
- ;;; GNU C Installation script for AmigaDOS
- ;;;
- ;;; This program is free software; you can redistribute it and/or modify
- ;;; it under the terms of the GNU General Public License as published by
- ;;; the Free Software Foundation; either version 2 of the License, or
- ;;; (at your option) any later version.
- ;;;
- ;;; This program is distributed in the hope that it will be useful,
- ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
- ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- ;;; GNU General Public License for more details.
- ;;;
- ;;; You should have received a copy of the GNU General Public License
- ;;; along with this program; if not, write to the Free Software
- ;;; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- ;;;
- ;;;
- ;;; Author: Jochen Wiedmann
- ;;; Am Eisteich 9
- ;;; 72555 Metzingen
- ;;; Germany
- ;;;
- ;;; Phone: (0049) +7123 / 14881
- ;;; Internet: wiedmann@neckar-alb.de
- ;;;
- ;;;
- ;;;
- ;;; History: 2.0 07-Apr-95 Initial version
- ;;;
- ;;; 2.2 14-Apr-95 Added CHECK, OFF and SET
- ;;; options to GNU:s/User-Startup
- ;;; CopyEnvironment procedure does
- ;;; no longer depend on the
- ;;; existence of GNU:envarc.
- ;;;
- ;;; 2.3 20-Apr-95 Assign GNUINCLUDE: now optional.
- ;;; User may switch between modifying
- ;;; specs file and using
- ;;; C_INCLUDE_PATH.
- ;;;
- ;;; 2.4 13-May-95 Fixed bug in the specs file
- ;;; modification. Added existence
- ;;; checks to Rename020Binaries.
- ;;;
- ;;; 2.5 20-May-95 Removed GCCSTACK variable (No
- ;;; longer needed by gcc 2.7.0)
- ;;;
- ;;; 2.6 20-Jun-95 Fixed typo; no longer setting
- ;;; ENVARC:PAGER by default; fixed
- ;;; wrong path removal in
- ;;; GNU:s/User-Startup
- ;;;
- ;;; 2.7 29-Jul-95 Fixed bug in the specs file
- ;;; modification: Edit removed
- ;;; blanks from the end of a line.
- ;;;
- ;;;
- ;;; 2.8 31-Jul-95 Added GCCSTACK variable again.
- ;;; (Sigh!)
- ;;;
- ;;; 2.9 02-Aug-95 Added "Upgrade" options to
- ;;; DeinstallGNU function
- ;;;
- ;;; 2.10 04-Aug-95 Fixed minor bugs in message
- ;;; strings.
- ;;;
- ;;; 2.11 22-Aug-95 Typos and my bad english :-)
- ;;; fixed.
- ;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;
- ;;; Variable settings
- ;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (set installName "gcc")
- (set installVersion "2.7.0")
- (set installVersionShort "270")
- (set minOsVersion 37)
-
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;
- ;;; SelectInstallDir procedure
- ;;;
- ;;; Allows the user to select an installation directory (full path),
- ;;; which will be stored in the installDir variable.
- ;;;
- ;;; Uses: installDir old installation directory path
- ;;;
- ;;; Sets: installDir installation directory path
- ;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (set askedInstallDir 0)
- (set configSubDir 0)
- (procedure SelectInstallDir
-
- (if (NOT askedInstallDir)
- ( (if configSubDir
- ( (set installDir (expandpath (askdir
- (prompt "Please select the directory to configure. ")
- (help "GNU C is installed in one directory, Work:GNU "
- "or something similar. Please select this "
- "directory, so that I can reconfigure it.\n\n"
- )
- (default installDir)
- (newpath)
- )))
-
- (set installDirParent (pathonly installDir))
- )
- ( (set installDirParent (expandpath (askdir
- (prompt "Please select the installation directory. "
- "A drawer GNU will be created."
- )
- (help "GNU C is installed in a directory called `GNU:'. "
- "For example, binaries go into `GNU:bin', link "
- "libraries in `GNU:lib' and so on.\n\n"
- "A typical place for GNU: is something like "
- "`Work:GNU' or something similar. In this "
- "example you should select the directory "
- "`Work:'.\n\n"
- @askdir-help
- )
- (default (pathonly installDir))
- (newpath)
- )))
-
- (set installDir (tackon installDirParent "GNU"))
-
- (message "Installing GNU C in " installDir ".\n\n"
- "Binaries will be in " (tackon installDir "bin")
- ", link libraries in " (tackon installDir "lib")
- ", header files in " (tackon installDir "include")
- "."
- )
- ))
- (set @default-dest installDir)
- (CompleteStep)
-
- (set askedInstallDir 1)
- ))
- )
-
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;
- ;;; SelectVersion procedure
- ;;;
- ;;; Allows the user to select a version to install.
- ;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (set askedInstallVersion 0)
- (procedure SelectVersion
-
- (if (NOT askedInstallVersion)
- ( (set installVersion (askstring
- (prompt "Enter the version of GNU C to install.")
- (help "Certain files and directories contain the version "
- "of GNU C in the path, thus I need to know them. "
- "Please enter the GNU C version in the form "
- installVersion ".\n\n"
- @askstring-help
- )
- (default installVersion)
- ))
-
- (set installVersionShort (cat
- (substr installVersion 0 1)
- (substr installVersion 2 1)
- (substr installVersion 4 1)
- ))
-
- (set askedInstallVersion 1)
- ))
- )
-
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;
- ;;; SelectDeinstallDir procedure
- ;;;
- ;;; Allows the user to select a directory to be deinstalled.
- ;;;
- ;;; Uses: oldInstallDir directory of recent GNU C installation
- ;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (procedure SelectDeinstallDir
-
- (set deinstallDir (askdir
- (prompt "Select the directory where to deinstall GNU C.")
- (help "If your GNU C version is installed in Work:GNU, for "
- "example, select Work:GNU, so that I can remove it.\n\n"
- @askdir-help
- )
- (default oldInstallDir)
- ))
- (CompleteStep)
- )
-
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;
- ;;; CheckObsoleteDir procedure
- ;;;
- ;;; Asks the user if he wants an "obsolete" directory and creates it,
- ;;; if this is the case. The name will be stored in installObsoleteDir
- ;;; in that case, otherwise this variable will receive the value "".
- ;;;
- ;;; Uses: installDir name of installation directory
- ;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (set installObsoleteDirChecked 0)
- (procedure CheckObsoleteDir
-
- (if (NOT installObsoleteDirChecked)
- ( (set installObsoleteDir (tackon installDir "obsolete"))
- (if (<> (exists installObsoleteDir) 2)
- ( (makedir installObsoleteDir
- (prompt "Creating a directory " installObsoleteDir " to keep "
- "old prefs files and icons."
- )
- (help "Old user-editabe files may be prevented from "
- "deletion by copying them to " installObsoleteDir
- ". You may skip this part, if you don't want this.\n\n"
- @makedir-help
- )
- (confirm 2)
- (infos)
- )
- (if (<> (exists installObsoleteDir) 2)
- ( (set installObsoleteDir "")
- ))
- ))
- (set installObsoleteDirChecked 1)
- ))
- )
-
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;
- ;;; CheckObsoleteFile procedure
- ;;;
- ;;; Uses: checkObsoleteFileName name of file to be copyied into the
- ;;; obsolete directory (relative to
- ;;; installDir)
- ;;; installObsoleteDir name of the "obsolete" directory
- ;;; installDir name of the installation directory
- ;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (procedure CheckObsoleteFile
-
- (if (exists checkObsoleteFileName)
- ( (CheckObsoleteDir)
-
- (if installObsoleteDir
- ( (copyfiles
- (prompt ("Preserving old file %s ..." checkObsoleteFileName))
- (help "The old file " checkObsoleteName " may be preserved "
- "by copying it to " installObsoleteDir ". You may skip "
- "this part, if you don't want this.\n\n"
- @copyfiles-help
- )
- (source checkObsoleteFileName)
- (dest installObsoleteDir)
- (infos)
- (confirm 2)
- (optional "oknodelete" "force" "askuser")
- )
- ))
- ))
- )
-
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;
- ;;; CheckOsVersion procedure
- ;;;
- ;;; Aborts, if OS version is lower than the variable minOsVersion.
- ;;; Sets osVersion variable.
- ;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (procedure CheckOsVersion
- (set osVersion (/ (getversion "exec.library" (resident)) 65536))
- (if (< osVersion minOsVersion)
- ( (abort "Sorry, " installName
- " needs Kickstart/Workbench 2.04 or higher.")
- ))
- )
-
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;
- ;;; ShowCopyrightMessage procedure
- ;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (procedure ShowCopyrightMessage
- (message "GNU C: The GNU Project C and C++ Compiler\n\n"
- "V" installVersion " © 1995 Free Software Foundation \n\n"
- "This program is FREE SOFTWARE; you can redistribute it and/or "
- "modify it under the terms of the GNU General Public License as "
- "published by the Free Software Foundation; either version 2 "
- "or any later version.\n\n"
- "This program is distributed in the hope that it will be useful, "
- "but WITHOUT ANY WARRANTY! See the GNU General Public License "
- "(in the file COPYING) for details."
- )
- )
-
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;
- ;;; CheckGNUDir procedure
- ;;;
- ;;; Checks, if GNU: or GCC: assign exists; stores value in
- ;;; installDir sets boolean variable oldInstallationSeen.
- ;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (procedure CheckGNUDir
-
- (set installDir (getassign "GNU" "va"))
- (if (= installDir "")
- ( (set installDir (getassign "GCC" "va"))
- ))
-
- (if (<> installDir "")
- ( (set installDir (expandpath installDir))
- (set oldInstallationSeen 1)
- (set oldInstallDir installDir)
- (transcript "Existing GNU C installation in " installDir
- " detected.")
- )
- ( (set installDir "SYS:GNU")
- (set oldInstallationSeen 0)
- (transcript "Performing initial GNU C installation.")
- ))
- (set @default-dest installDir)
- )
-
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;
- ;;; RenameFile procedure
- ;;;
- ;;; Renames a file by creating the directory of the new location,
- ;;; if this is needed.
- ;;;
- ;;; Uses: oldFileName
- ;;; newFileName
- ;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (procedure RenameFile
-
- (if (exists oldFileName)
- ( (if (NOT (exists (pathonly newFileName)))
- ( (makedir (pathonly newFileName))
- ))
- (rename oldFileName newFileName)
- ))
- )
-
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;
- ;;; DeinstallGNU procedure
- ;;;
- ;;; Deletes GNU:lib/gcc-lib or GNU: (if the GNU: path was changed by
- ;;; the user)
- ;;;
- ;;; Uses: deinstallDir Directory where to deinstall GNU C.
- ;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (procedure DeinstallGNU
-
- (set deinstallKind (askchoice
- (prompt "Which kind of deinstallation do you want?")
- (help "Selecting \"Complete removal\" means removing "
- "the complete directory " deinstallDir ". This is "
- "usually selected, if you want to remove GNU C or "
- "want to install a new version in another directory.\n\n"
- "If you just want to replace the existing version with "
- "a new one in the same directory, it should be "
- "sufficient to select \"Partial removal\": This "
- "will only remove " (tackon deinstallDir "lib/gcc-lib")
- ", as other files will be overwritten when installing "
- "the new version.\n\n"
- "\"Preserve old version\" will just rename gcc and gccv "
- "to gcc-2.6.3 (for example), so that you can have "
- "different versions of gcc installed at the same "
- "time.\n\n"
- @askchoice-help
- )
- (choices "Complete removal"
- "Partial removal"
- "Preserve old version"
- )
- (default 0)
- ))
- (if (AND (<> deinstallKind 2)
- (patmatch deinstallDir oldInstallDir))
- ( (startup "GNU stuff"
- (prompt "Removing GNU C from s:User-Startup.")
- (help "Your version of GNU C in " deinstallDir
- "will be no longer usable. If there are any lines in "
- "your S:User-Startup concerning GNU C, they should "
- "probably be removed.\n\n"
- @startup-help
- )
- )
- ))
- (CompleteStep)
-
- (select deinstallKind
- ( (set deleteFileName deinstallDir)
- (DeleteFile)
- (if (patmatch deinstallDir oldInstallDir)
- ( (message "I was not able to remove the directory "
- deinstallDir " and some of its subdirectories, "
- "as there are still assigns pointing to them.\n\n"
- "You should remove them manually later.\n"
- )
- ))
- )
- ( (set n 0)
- (while (set file (select n "lib/gcc-lib"
- "lib/libgcc.a"
- "lib/libb/libgcc.a"
- "lib/libm020/libgcc.a"
- "lib/libb/libm020/libgcc.a"
- ""
- ))
- ( (set deleteFileName (tackon deinstallDir file))
- (DeleteFile)
- (set n (+ n 1))
- ))
- )
- ( (set deinstallBinary (tackon deinstallDir "bin/gcc"))
- (set deinstallBinaryOk 0)
- (if (exists deinstallBinary)
- ( (run (cat "setenv INSTALLED_GCC_BINARY_VERSION `"
- deinstallBinary " -v`"
- ))
- (set deinstallBinaryVersion
- (getenv "INSTALLED_GCC_BINARY_VERSION"))
- (set n 0)
- (while (AND (< n (strlen deinstallBinaryVersion))
- (<> (substr deinstallBinaryVersion n 11) "lib/gcc-lib"))
- ( (set n (+ n 1))
- ))
- (if (< n (strlen deinstallBinaryVersion))
- ( (set deinstallBinaryVersion
- (substr deinstallBinaryVersion n))
- (set n 0)
- (while (AND (< n (strlen deinstallBinaryVersion))
- (<> (substr deinstallBinaryVersion n 6) "/specs"))
- ( (set n (+ n 1))
- ))
- (if (< n (strlen deinstallBinaryVersion))
- ( (set deinstallBinaryVersion
- (substr deinstallBinaryVersion 0 n))
- (set deinstallVersion (fileonly deinstallBinaryVersion))
- (set n 0)
- (set oldFile 1)
- (while (set file (select n "bin/gcc" (cat "bin/gcc-" deinstallVersion)
- "bin/gccv" (cat "bin/gccv-" deinstallVersion)
- "lib/libgcc.a" (cat deinstallBinaryVersion "/libgcc.a")
- "lib/libb/libgcc.a" (cat deinstallBinaryVersion "/libb/libgcc.a")
- "lib/libm020/libgcc.a" (cat deinstallBinaryVersion "/libm020/libgcc.a")
- "lib/libb/libm020/libgcc.a" (cat deinstallBinaryVersion "/libb/libm020/libgcc.a")
- ""
- ))
- ( (if oldFile
- ( (set oldFileName (tackon deinstallDir file))
- )
- ( (set newFileName (tackon deinstallDir file))
- (RenameFile)
- ))
- (set oldFile (NOT oldFile))
- (set n (+ n 1))
- ))
- (set deinstallBinaryOk 1)
- ))
- ))
-
- ))
- (if (NOT deinstallBinaryOk)
- ( (message "Cannot find GNU C in " deinstallDir ". A "
- "possible reason is a missing or wrong GNU: "
- "assign.")
- ))
- ))
- (CompleteStep)
- )
-
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;
- ;;; DeleteFile procedure
- ;;;
- ;;; Deletes a file
- ;;;
- ;;; Uses: deleteFileName file to delete
- ;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (procedure DeleteFile
-
- (select (exists deleteFileName)
- ( (set deleteFileName deleteFileName)
- )
- ( (delete deleteFileName
- (prompt "Deleting " deleteFileName "...")
- (optional "force" "askuser")
- )
- )
- ( (working "Deleting directory " deleteFileName)
- (run (cat "C:Delete \"" deleteFileName "\" ALL QUIET"))
- ))
- )
-
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;
- ;;; SelectLHAProgram procedure
- ;;;
- ;;; Lets the user select the LHA binary; sets the variable lhaProgram.
- ;;;
- ;;; Sets: lhaProgram path of LhA binary
- ;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (procedure SelectLHAProgram
-
- (set l 1)
- (while l
- ( (set lhaProgram (askfile
- (prompt "Please select your LhA program.")
- (help "Unfortunately the Installer program ignores "
- "your path settings. Thus I need to know the "
- "complete path of your LhA program.\n\n"
- @askfile-help
- )
- (default "LhA")
- ))
- (if (exists lhaProgram)
- ( (set l 0)
- ))
- ))
- (CompleteStep)
- )
-
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;
- ;;; SelectPackages procedure
- ;;;
- ;;; Allows the user to select the archives that should be unarchived.
- ;;; Result is stored in the gnuPackagesChoice variable.
- ;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (procedure SelectPackages
-
- (set gnuPackagesChoice (askoptions
- (prompt "Which parts of gcc should be installed?")
- (choices "Base distribution"
- "Includes & Libraries"
- "C"
- "C++"
- "Objective-C"
- "Additional Utilities"
- "On-line Documentation"
- "Utilities On-line Documentation"
- "Source Diffs"
- "Documentation sources")
- (default 71)
- (help "gcc is distributed in different LhA archives. "
- "I will unarchive those parts to " installDir
- " that you select.\n\n"
- "A minimal installation requires base distribution, "
- "Includes & Libraries and the C distribution. This will take "
- "about 7.5 MB of harddisk space. However, I recommend at least "
- "adding the on-line documentation, so you get a minimum of "
- "10 MB.\n\n"
- @askoptions-help
- )
- ))
- (CompleteStep)
- )
-
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;
- ;;; Ask020Binaries procedure
- ;;;
- ;;; Asks the user, if he wants the 68020 binaries. Result stored in
- ;;; install020 variable.
- ;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (set asked020Binaries 0)
- (procedure Ask020Binaries
-
- (if (NOT asked020Binaries)
- ( (set install020 "")
- (if (NOT (OR (= (database "cpu") "68000")
- (= (database "cpu") "68010")
- ))
- ( (if (askbool
- (prompt "Do you like to have the 68020 binaries "
- "installed?\n\n"
- "Of course you need to have the 68020 binaries "
- "(packages "
- "gcc" installVersionShort "-c-020.lha, "
- "gcc" installVersionShort "-c++-020.lha and "
- "gcc" installVersionShort "-objc020.lha, "
- "respectively) available.\n\n"
- )
- (help "The GNU C distribution offers two different "
- "binary versions. If your machine's CPU is a "
- "68020 or above, then you should install the "
- "68020 binaries and select \"Yes\". This won't "
- "affect the binaries created by you. It only "
- "increases the compilers speed.\n\n"
- "Otherwise you should select \"No\".\n\n"
- @askbool-help
- )
- (default 1)
- )
- ( (set install020 "-020")
- ))
- ))
- (CompleteStep)
-
- (set asked020Binaries 1)
- ))
- )
-
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;
- ;;; UnpackArchive procedure
- ;;;
- ;;; Unpacks one LhA file.
- ;;;
- ;;; Uses: installArchiveName name of archive file
- ;;; lhaCommand command to execute for dearchiving
- ;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (set defaultArchivePath "")
- (procedure UnPackArchive
-
-
- (set l 1)
- (while l
- ( (set installArchive (askfile
- (prompt "Please select the archive file "
- installArchiveName " for unpacking."
- )
- (help "Please select the archive file " installArchiveName ". "
- "I will unpack this archive to " installDir ".\n\n"
- @askfile-help
- )
- (default (tackon defaultArchivePath installArchiveName))
- ))
- (set defaultArchivePath (pathonly installArchive))
- (if (exists installArchive)
- ( (set l 0)
- (if (run (lhaCommand installArchive)
- (prompt ("\n\nUnpacking %s ..." installArchive))
- )
- ( (abort "\n\n" (lhaCommand installArchive)
- "\n\nshowed an error."
- )
- ))
- )
- ( (message "File " installArchive " does not exist.")
- (set installArchive "")
- ))
- ))
- )
-
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;
- ;;; CopyEnvironment procedure
- ;;;
- ;;; Creates environment variables
- ;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (procedure CopyEnvironment
-
- (SelectOSHeadersDir)
-
- (set varsToCreatePrompt "Installing environment variables in \"ENVARC:\"")
- (set varsToCreateHelp
- (cat "Some environment variables are required or encouraged.\n\n"
- "GCCSTACK ensures that gcc won't run out of stack. "
- "GCCPRIORITY is the priority of gcc's child processes.\n"
- "LESSCHARSET, PAGER and TERM usually aren't needed, "
- "except, if you are using \"less\" or similar programs.\n\n"
- ))
-
- (if (AND (<> osHeadersDir "")
- (= osHeadersInstallStyle 1))
-
- ( (if useGNUINCLUDE
- ( (set includePath "/GNUINCLUDE")
- )
- ( (set includePath osHeadersDir)
- ))
-
- (set varsToCreate (askoptions
- (prompt varsToCreatePrompt)
- (help varsToCreateHelp
- "C_INCLUDE_PATH, CPLUS_INCLUDE_PATH, OBJC_INCLUDE_PATH "
- "and OBJCPLUS_INCLUDEPATH tell gcc, where to find the "
- "OS headers.\n\n"
- @askoptions-help
- )
- (choices "GCCPRIORITY"
- "GCCSTACK"
- "LESSCHARSET"
- "PAGER"
- "TERM"
- "C_INCLUDE_PATH"
- "CPLUS_INCLUDE_PATH"
- "OBJC_INCLUDE_PATH"
- "OBJCPLUS_INCLUDE_PATH"
- )
- (default 503)
- ))
- )
- ( (set varsToCreate (askoptions
- (prompt varsToCreatePrompt)
- (help varsToCreateHelp @askoptions-help)
- (choices "GCCPRIORITY"
- "GCCSTACK"
- "LESSCHARSET"
- "PAGER"
- "TERM"
- )
- (default 23)
- ))
- ))
-
-
- (set n 0)
- (set bit 1)
- (while (set word (select n "GCCPRIORITY" "-1"
- "GCCSTACK" "350000"
- "LESSCHARSET" "latin"
- "PAGER" "/usr/bin/more"
- "TERM" "amiga"
- "C_INCLUDE_PATH" includePath
- "CPLUS_INCLUDE_PATH" includePath
- "OBJC_INCLUDE_PATH" includePath
- "OBJCPLUS_INCLUDE_PATH" includePath
- ""
- ))
- ( (if (BITAND n 1)
- ( (if (BITAND bit varsToCreate)
- ( (set checkObsoleteFileName (tackon "ENVARC:" varName))
- (CheckObsoleteFile)
- (textfile
- (prompt "Creating environment variable " varName)
- (help @textfile-help)
- (dest (tackon "ENVARC:" varName))
- (append word)
- )
- ))
- (set bit (shiftleft bit 1))
- )
- ( (set varName word)
- ))
- (set n (+ n 1))
- ))
-
- ; (if (exists "ENVARC:GCCSTACK")
- ; ( (if (askbool
- ; (prompt "The environment variable GCCSTACK is no longer "
- ; "needed as of gcc 2.7.0.\n\n"
- ; "Do you want to remove it?\n"
- ; )
- ; (help "Recent versions of gcc (2.6.0-2.6.3) needed an "
- ; "environment variable GCCSTACK to ensure sufficient "
- ; "stack. This variable is no longer needed, as gcc "
- ; "extends its stack dynamically now.\n\n"
- ; "Select \"Yes\", if you want to remove this "
- ; "obsolete variable or \"No\", if you want to "
- ; "keep it for recent versions."
- ; )
- ; (default 1)
- ; )
- ; ( (set deleteFileName "ENVARC:GCCSTACK")
- ; (DeleteFile)
- ; ))
- ; ))
-
- (CompleteStep)
- )
-
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;
- ;;; ModifyUserStartup procedure
- ;;;
- ;;; Modifies s:User-Startup and creates GNU:s/User-Startup
- ;;;
- ;;; Uses: installDir installation directory
- ;;; osHeadersDir path of OS headers
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (procedure ModifyUserStartup
-
- (SelectOSHeadersDir)
-
- (startup "GNU stuff"
- (command "Assign GNU: " installDir "\n")
- (command "Execute GNU:s/User-Startup\n")
- (prompt "The following lines should be added to your s:User-Startup:\n\n"
- "Assign GNU: " installDir "\n"
- "Execute GNU:s/User-Startup\n\n"
- "Shall I do this now?"
- )
- (help "gcc needs a special environment, some assigns for example. "
- "The easiest way to get this environment is to meodify your "
- "User-Startup file, so that it is created automatically when "
- "your machine boots.\n\n"
- @startup-help
- )
- )
-
- (if (AND (<> osHeadersDir "")
- (= osHeadersInstallStyle 0))
- ( (SelectVersion)
- (Ask020Binaries)
- (if (<> install020 "")
- ( (set specsFile (tackon installDir
- (cat "lib/gcc-lib/mc68020-cbm-amigados/"
- installVersion "/specs"))
- )
- )
- ( (set specsFile (tackon installDir
- (cat "lib/gcc-lib/mc68000-cbm-amigados/"
- installVersion "/specs"))
- )
- ))
-
- (if (AND (exists "C:Edit")
- (exists specsFile))
- ( (if useGNUINCLUDE
- ( (set specsString "-IGNUINCLUDE:")
- )
- ( (set specsString (cat "-I" osHeadersDir))
- ))
-
- (set checkObsoleteFileName specsFile)
- (CheckObsoleteFile)
- (textfile
- (prompt "Creating batch file for C:Edit.")
- (help "A batchfile with commands for C:Edit must be "
- "created."
- @textfile-help
- )
- (dest "t:specsFileEdit")
- (append "TR+\n"
- "F B/*cpp:/\n"
- "N\n"
- "DTB /%{m68881/\n"
- "B,%{m68881,%{!nostdinc:" specsString " },\n"
- "Q\n"
- )
- )
- (run (cat "C:Edit " specsFile " WITH t:specsFileEdit OPT W4096"))
- (set deleteFileName "t:specsFileEdit")
- (DeleteFile)
- )
- ( (message
- "C:Edit or specs file " specsFile
- "not found. You must edit the specs file "
- "manually and add \"" specsString "\" to "
- "the cpp entry. The line should look as follows:\n\n"
- " *cpp:\n"
- " %{!nostdinc:" specsString " }%{m68881 ...\n\n"
- "Otherwise you need to add \"" specsString "\" to your "
- "command line each time you are using Commodore "
- "headers."
- )
- ))
- )
- ( (set osHeadersString "")
- ))
-
- (if (<> (exists (tackon installDir "s")) 2)
- ( (makedir (tackon installDir "s")
- (prompt "Creating GNU:s directory.")
- (help "A directory GNU:s will be created which contains "
- "the files that are executed at startup time."
- @makedir-help
- )
- )
- ))
-
- (set checkObsoleteFileName (tackon installDir "s/User-Startup"))
- (CheckObsoleteFile)
- (if useGNUINCLUDE
- ( (set installGNUINCLUDE
- (cat " Assign GNUINCLUDE: \"" osHeadersDir "\"\n")
- )
- (set deinstallGNUINCLUDE
- (cat " Assign GNUINCLUDE: REMOVE >nil:\n")
- )
- )
- ( (set installGNUINCLUDE "")
- (set deinstallGNUINCLUDE "")
- ))
-
- (textfile
- (prompt "Creating the GNU startup file GNU:s/user-startup.")
- (help "The file GNU:s/user-startup must be executed before "
- "using gcc, usually from s:User-Startup."
- )
- (dest (tackon installDir "s/User-Startup"))
- (append ".key ON/S,OFF/S,SET/S,CHECK/S\n"
- ".bra {\n"
- ".ket }\n"
- "\n"
- "; GNU User-Startup\n"
- ";\n"
- "; User-Startup ON for installing GNU assigns. (default)\n"
- "; User-Startup OFF for removing GNU assigns.\n"
- "; User-Startup CHECK for checking, if assigns exist.\n"
- "; User-Startup SET for setting paths only.\n"
- "\n"
- "IF \"{OFF}\" EQ \"\"\n"
- " IF \"{CHECK}\" EQ \"\"\n"
- " IF \"{SET}\" EQ \"\"\n"
- " Assign GNU: EXISTS >nil:\n"
- " IF WARN\n"
- " Assign GNU: \"" installDir "\"\n"
- " ENDIF\n"
- " Assign BIN: GNU:bin\n"
- " Assign ETC: GNU:etc\n"
- " Assign DEV: GNU:dev\n"
- " Assign TMP: t:\n"
- " Assign LIBS: GNU:Libs ADD\n"
- " Assign LOCAL: GNU:\n"
- installGNUINCLUDE
- " Assign L: GNU:ixpipe ADD\n"
- " ENDIF\n"
- " Set ESHELL \"GNU:bin/sh\"\n"
- " Path GNU:bin add\n"
- " ELSE\n"
- " Assign GNU: EXISTS >nil:\n"
- " IF WARN\n"
- " Echo \"Assign GNU: doesn't exist.\"\n"
- " QUIT 5\n"
- " ELSE\n"
- " Echo \"Assign GNU: exists.\"\n"
- " ENDIF\n"
- " ENDIF\n"
- "ELSE\n"
- " Assign GNU: EXISTS >nil:\n"
- " IF NOT WARN\n"
- " Path GNU:bin REMOVE >nil:\n"
- " UnSet ESHELL\n"
- " Assign L: GNU:ixpipe REMOVE >nil:\n"
- deinstallGNUINCLUDE
- " Assign LOCAL: REMOVE >nil:\n"
- " Assign LIBS: GNU:Libs REMOVE\n"
- " Assign TMP: REMOVE\n"
- " Assign DEV: REMOVE\n"
- " Assign ETC: REMOVE\n"
- " Assign BIN: REMOVE\n"
- " Assign GNU: REMOVE\n"
- " ENDIF\n"
- "ENDIF\n"
- )
- )
- (protect (tackon installDir "s/User-Startup") "+s")
-
- (CompleteStep)
- )
-
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;
- ;;; CreateLink procedure
- ;;;
- ;;; Creates one link
- ;;;
- ;;; Uses: useLinks 1, if "C:MakeLink" should be used, 0 for copy
- ;;; linkDestFile file to be created (absolute path)
- ;;; linkSourceFile file to be copied (absolute path)
- ;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (procedure CreateLink
-
- (if (exists linkSourceFile)
- ( (if (exists linkDestFile)
- ( (set deleteFileName linkDestFile)
- (DeleteFile)
- ))
- (if useLinks
- ( (run (cat "C:MakeLink \"" linkDestFile "\" \"" linkSourceFile))
- )
- ( (copyfiles
- (prompt "Faking link from " linkSourceFile " to "
- linkDestFile "."
- )
- (source linkSourceFile)
- (dest (pathonly linkDestFile))
- (newname (fileonly linkDestFile))
- (optional "askuser" "force")
- )
- ))
- ))
- )
-
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;
- ;;; CreateNeededLinks procedure
- ;;;
- ;;; Creates needed links.
- ;;;
- ;;; Uses: installDir
- ;;;
- ;;; Sets: useLinks
- ;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (procedure CreateNeededLinks
-
- (set useLinks (askchoice
- (prompt "\n\nSome files may be installed either as links "
- "or copied. What do you prefer?"
- )
- (help "\n\nAmigaDOS is still having problems with links. "
- "Thus you might prefer to copy files."
- "\n\nOn the other hand links save disk space. "
- "(Not very much.)"
- @askbool-help
- )
- (choices "Copy them anyway"
- "Use Links"
- )
- (default 0)
- ))
-
- (set n 0)
- (set left 0)
- (while (set file (select n "bin/gzip" "bin/gunzip"
- "bin/gzip" "bin/zcat"
- "bin/zdiff" "bin/zcmp"
- "bin/grep" "bin/fgrep"
- "bin/grep" "bin/egrep"
- "bin/dir" "bin/d"
- "bin/dir" "bin/v"
- "bin/dir" "bin/vdir"
- "bin/flex" "bin/flex++"
- "bin/install" "bin/ginstall"
- "bin/sh" "bin/ksh"
- "bin/awk" "bin/gawk"
- "bin/test" "bin/["
- "man/man1/gzip.1" "man/man1/gunzip.1"
- "man/man1/gzip.1" "man/man1/zcat.1"
- "man/man1/zdiff.1" "man/man1/zcmp.1"
- ""
- ))
- ( (if left
- ( (set linkDestFile (tackon installDir file))
- (CreateLink)
- )
- ( (set linkSourceFile (tackon installDir file))
- ))
- (set left (NOT left))
- (set n (+ n 1))
- ))
-
- (CompleteStep)
- )
-
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;
- ;;; Rename020Binaries procedure
- ;;;
- ;;; Renames gcc-020, g++-020, ... to gcc, g++, ..., respectively
- ;;;
- ;;; Uses: install020 set, if 68020 binaries to be installed
- ;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (procedure Rename020Binaries
-
- (Ask020Binaries)
-
- (if (<> install020 "")
- ( (if (askbool
- (prompt "\n\nDo you want me to rename the binaries "
- "gcc-020, g++-020, ... to gcc, g++, ..., "
- "respectively?"
- )
- (help "Some users have both 68000 and 68020 binaries "
- "available. This requires that certain binaries "
- "like gcc, g++ ... have the ending \"-020\" "
- "appended to their name.\n\n"
- "Most others won't prefer to use the names gcc, "
- "g++, ..., however. If you do, select \"Yes\", "
- "and I will rename them, otherwise select "
- "\"No\".\n\n "
- @askbool-help
- )
- (default 1)
- )
- ( (set n 0)
- (while (set file (select n "bin/gcc"
- "bin/c++"
- "bin/g++"
- "bin/gccv"
- "bin/protoize"
- "bin/unprotoize"
- ""
- ))
- ( (set newFileName (tackon installDir file))
- (set oldFileName (cat newFileName "-020"))
- (if (exists oldFileName)
- ( (set deleteFileName newFileName)
- (DeleteFile)
- (rename oldFileName newFileName)
- ))
- (set n (+ n 1))
- ))
- ))
- ))
- (CompleteStep)
- )
-
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;
- ;;; SelectOSHeadersDir procedure
- ;;;
- ;;; Allows the user to select a directory with OS header files.
- ;;;
- ;;; Sets: osHeadersDir path to the directory with OS headers.
- ;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (set osHeadersDirSelected 0)
- (procedure SelectOSHeadersDir
-
- (if (NOT osHeadersDirSelected)
- ( (set osHeadersDir "")
- (set osHeadersDirDefault (getassign "GNUINCLUDE" "a"))
- (set useGNUINCLUDE 0)
- (set done 0)
- (while (NOT done)
- ( (if (askbool
- (prompt "Do you have the Commodore OS headers installed?")
- (help "Using the Commodore OS headers may be simplified "
- "by creating an assign \"GNUINCLUDE:\". Select "
- "\"Yes\", if you want me to create this assign, "
- "\"No\" otherwise.\n\n"
- @askbool-help
- ))
- ( (set osHeadersDir (askfile
- (prompt "Please select the directory with the "
- "Commodore OS headers."
- )
- (help "Using the Commodore OS headers may be simplified "
- "by creating an assign \"GNUINCLUDE:\", which "
- "will lead to the directory with the Commodore "
- "OS headers. Please select this directory, so that "
- "I can create this assign.\n\n"
- @askfile-help
- )
- (default osHeadersDirDefault)
- ))
- (if (exists (tackon osHeadersDir "exec/types.h"))
- ( (set done 1)
- )
- ( (message "The directory " osHeadersDir " doesn't "
- "contain the Commodore OS headers: Cannot "
- "find "
- (tackon osHeadersDir "exec/types.h")
- )
- (set osHeadersDirDefault osHeadersDir)
- (set osHeadersDir "")
- ))
- )
- ( (message "You won't be able to write real Amiga applications "
- "without the Commodore OS headers.\n\n"
- "You can get them, for example, on the Fish CD's or "
- "buy them (including the Commodore AutoDocs). Please "
- "read the Amiga FAQ for details."
- )
- (set done 1)
- ))
- ))
-
- (if (<> osHeadersDir "")
- ( (set osHeadersInstallStyle (askchoice
- (prompt "How should I install the OS headers?")
- (choices "Modify specs file"
- "Create environment variables"
- "None of the above"
- )
- (help
- "The OS headers can be installed in different ways.\n\n"
- "The simplest and safest is to copy them to "
- (tackon installDir "os-include") ".\n\n"
- "Another possibility would be to setup certain "
- "environment variables, so that gcc will always "
- "look into " osHeadersDir " when searching header "
- "files.\n\n"
- "The same result is accomplished by modifying the "
- "so-called specs file. This is the recommended "
- "method, although it is less visible for the user.\n\n"
- @askchoice-help
- )
- (default 0)
- ))
-
- (if (< osHeadersInstallStyle 2)
- ( (if (askbool
- (prompt "Do you want to create a \"GNUINCLUDE\" assign?")
- (help "Many people like to have an assign "
- "\"GNUINCLUDE:\" with the directories where gcc "
- "should always look for header files. Select \"yes\","
- "if you do.\n\n"
- "Others don't want to have much assigns and prefer "
- "to use the name " osHeadersDir " immediately.\n\n"
- @askbool-help
- )
- (default 0)
- )
- ( (set useGNUINCLUDE 1)
- ))
-
- )
- ( (message "You can still use the OS headers, either by "
- "adding -I" osHeadersDir " to your gcc command "
- "line or by copying them to "
- (tackon installDir "os-include") ".\n\n"
- "Be sure that you don't override gcc header "
- "files in the latter case, especially the "
- "proto directory might be overwritten."
- )
- ))
- ))
- (CompleteStep)
-
- (set osHeadersDirSelected 1)
- ))
- )
-
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;
- ;;; CompleteStep procedure
- ;;;
- ;;; Shows how much of the work is completed.
- ;;;
- ;;; Uses: completeLevel Percent of work already done
- ;;; completeIncrement Percent to add for this step
- ;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (procedure CompleteStep
-
- (set completeLevel (+ completeLevel completeIncrement))
- (complete completeLevel)
- )
-
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;
- ;;; UnpackArchives procedure
- ;;;
- ;;; Allows the user to select and unpack LhA archives.
- ;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (procedure UnpackArchives
-
- (SelectVersion)
- (Ask020Binaries)
-
- (if (askbool
- (prompt "\n\nShould I unpack the archives for you?")
- (help "GNU C is distributed in different archives. These "
- "must be unpacked using the program LhA. We'll do "
- "this now in case you didn't already."
- )
- (default 1)
- )
- ( (SelectLHAProgram)
-
- (SelectPackages)
- (CompleteStep)
-
- (set @Default-Archive-Path "")
- (if (<> (substr installDirParent (- (strlen installDirParent) 1)) ":")
- ( (set installDirParent (cat installDirParent "/"))
- ))
- (set lhaCommand (cat lhaProgram " x -q -I \"%s\" " installDirParent))
-
- (set n 0)
- (set bit 1)
- (while (set installArchiveName (select n "base"
- "inclib"
- (cat "c" install020)
- (cat "c++" install020)
- (cat "objc" (substr install020 1))
- "utils"
- "doc"
- "utildoc"
- "diffs"
- "texi"
- ""
- ))
- ( (set installArchiveName (cat installName installVersionShort "-"
- installArchiveName ".lha"))
- (if (BITAND gnuPackagesChoice bit)
- ( (UnpackArchive)
- ))
- (CompleteStep)
- (set bit (shiftleft bit 1))
- (set n (+ n 1))
- ))
- )
- ( (set completeLevel (+ completeLevel (* completeIncrement 10)))
- (CompleteStep)
- ))
- )
-
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;
- ;;; ActionInstallation procedure
- ;;;
- ;;; Executes the work which is unique for installing a new package:
- ;;; Unpacking the archive and renaming 020 binaries.
- ;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (procedure ActionInstallation
-
- (SelectInstallDir)
- (UnpackArchives)
- (CreateNeededLinks)
- (Rename020Binaries)
- )
-
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;
- ;;; ActionDeinstallation procedure
- ;;;
- ;;; performs all steps needed for deinstalling an existing package.
- ;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (procedure ActionDeinstallation
-
- (SelectDeinstallDir)
- (DeinstallGNU)
- )
-
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;
- ;;; ActionConfiguration procedure
- ;;;
- ;;; performs all steps needed for configuring an existing package.
- ;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (procedure ActionConfiguration
-
- (SelectInstallDir)
- (CopyEnvironment)
- (SelectOSHeadersDir)
- (ModifyUserStartup)
- (CompleteStep)
- )
-
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;
- ;;; main program
- ;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- (CheckOsVersion)
- (ShowCopyrightMessage)
-
- (CheckGNUDir)
-
- (if oldInstallationSeen
- ( (complete 0)
-
- (set repeatIt 1)
- (set defaultChoice 3)
- (while repeatIt
- ( (set actionChoice (askchoice
- (prompt "Please select actions to perform.")
- (help "Select \"Deinstall existing version\", if you want "
- "to remove an existing package.\n\n"
- "Select \"Install new version\", if you want to "
- "replace the existing version with a new version. "
- "Installing a new version implies reconfiguring it "
- "later.\n\n"
- "Select \"Configure existing version\", if you don't "
- "want to install a new version and just reconfigure "
- "an existing version.\n\n"
- "Select \"Done\", if you want to exit.\n\n"
- @askchoices-help
- )
- (choices "Deinstall existing version."
- "Install and configure new version"
- "Configure existing version"
- "All of the above"
- "Done"
- )
- (default defaultChoice)
- ))
-
- (set installDirAsked 0)
- (set asked020Binaries 0)
- (set askedInstallVersion 0)
- (set osHeadersDirSelected 0)
-
- (select actionChoice
- ( (set completeLevel 1)
- (set completeIncrement 33)
- (ActionDeinstallation)
- (set defaultChoice 1)
- )
- ( (set completeLevel -5)
- (set completeIncrement 5)
- (ActionInstallation)
- (ActionConfiguration)
- (set defaultChoice 4)
- )
- ( (set completeLevel 0)
- (set completeIncrement 20)
- (set configSubDir 1)
- (ActionConfiguration)
- (set configSubDir 0)
- (set defaultChoice 4)
- )
- ( (set completeLevel 4)
- (set completeIncrement 4)
- (ActionDeinstallation)
- (ActionInstallation)
- (ActionConfiguration)
- (set defaultChoice 4)
- )
- ( (set repeatIt 0)
- ))
- ))
- )
- ( (set completeLevel 0)
- (set completeIncrement 5)
-
- (message "GNU C is completely installed in one directory called GNU. "
- "Typical places are Work:GNU or similar.\n\n"
- "We start with selecting the parent directory of GNU, "
- "so that I can unarchive the LhA files to this place.\n"
- "An assign GNU: will lead to this directory later, binaries "
- "will be in GNU:bin, link libraries in GNU:lib and so on.\n\n"
- "If you have any problems with this installation script, send "
- "mail to\n"
- "jochen.wiedmann@neckar-alb.de"
- )
-
- (ActionInstallation)
- (ActionConfiguration)
-
- (message "Initial installation done. You may rerun me at any time "
- "to perform deinstallation, installing new versions or "
- "reconfiguring the existing package.\n\n"
- "Now you have to reboot to activate new environment.\n"
- "In case of errors, problems or whatever, please contact "
- "me at:\n\n"
- "email: phb@colombo.telesys-innov.fr\n"
- "fidonet: 2:320/104.21 Ramses The Amiga Flying BBS"
- )
- ))
-